// pages/goods_detail/index.js
import {request} from "../../resquest/index.js"
import regeneratorRuntime from '../../lib/runtime/runtime';
import { showToast} from '../../utils/asyncWx.js'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsObj:{},
    isCollect:true
  },
  goodsInfo:{},
  /**
   * 生命周期函数--监听页面加载
   */
  onShow: function () {
    var curPages =  getCurrentPages();
    var pages = curPages[curPages.length-1]
    var options = pages.options;
    // console.log(options);
    
    const {goods_id} = options;
    this.getGoodsDetail(goods_id)

  },
  // 获取商品详情数据
  async getGoodsDetail(goods_id){
    const {data:res} = await request({url:'/goods/detail',data:{goods_id}});
    // console.log(res)
    this.goodsInfo = res.message;
    // 判断是否收藏
    let collect = wx.getStorageSync('collect') || [];
    let isCollect = collect.some(v=>v.goods_id ===this.goodsInfo.goods_id)
    this.setData({
      isCollect,
      goodsObj:{
        goods_name:res.message.goods_name,
        goods_price:res.message.goods_price,
        pics: res.message.pics,
        // 部分iPhone不支持webp格式图片，如果后台暂时无法调整，只能自己修改
        goods_introduce:res.message.goods_introduce.replace(/\.webp/g,'.jpg')
      }
    })

  },
  // 点击轮播图预览大图
  handleImagePre(e){
    // 先构造要预览的图片数组
    var urls = this.data.goodsObj.pics.map(v=>v.pics_mid);
    // console.log(e);
    const current = e.currentTarget.dataset.url;
    // console.log(urls);
    wx.previewImage({
      current, // 当前显示图片的http链接
      urls // 需要预览的图片http链接列表
    })
  },

  // 点击加入购物车，使用本地存储
  // 1.点击绑定事件
  // 2.获取缓存中的购物车数据， 数组格式
    // 3.判断商品是否存在于购物车
    // 4.如果存在，修改商品数据，购物车数量增加，重新把数据放回缓存中
    // 5.不存在于购物车，直接给数组添加一个新元素，带上购买数量，放回缓存中
    // 6.返回提示
  handleCartAdd(){
    // || 运算符：当数值参与逻辑或运算时，结果为true，会返回第一个为真的值；如果结果为false，会返回第二个为假的值
    // 第一次添加时候，cart是一个空字符串，要转换一下
    let cart = wx.getStorageSync("cart")||[] ;  
    // 判断商品对象是否在购物车数组中
    let index = cart.findIndex(v=>v.goods_id === this.goodsInfo.goods_id);
    if(index===-1){
      // 不存在
      this.goodsInfo.num =1;
      this.goodsInfo.checked = true;
      cart.push(this.goodsInfo);
    }else{
      // 已经存在
      cart[index].num++;
    }
    // 把购物车重新添加回缓存
    wx.setStorageSync("cart", cart)

    // 弹窗提示
    wx.showToast({
      title: '成功加入购物车',
      icon: 'success',
      // 1.5妙的弹窗延迟，防止手抖^_^
      mask: true
    })
  },
  // 点击收藏
  handleCollect(){
    let collect = wx.getStorageSync('collect')||[];
    // 使用findindex查找，方便删除（判断是否收藏）
    let index = collect.findIndex(item=>item.goods_id === this.goodsInfo.goods_id)
    if(index!==-1){
      collect.splice(index,1);
      showToast({title:"取消收藏"})
    }else{
      collect.push(this.goodsInfo)
      showToast({title:"收藏成功"})
    
    }
    // 保存到缓存中
    wx.setStorageSync("collect", collect)
    this.setData({
      isCollect: !this.data.isCollect
    })
  }
    
})